/********************************************************************************
 * Copyright (c)2016-2020, ShenZhen WanJiaAn Technology CO.,LTD.
 * All Rights Reserved.
 *
 * File Name     : PowerManager.h
 * Author        : joki.zhu
 * Date          : 2019-10-23
 *
 * Record        :
 * 1.Date        : 2019-10-23
 *   Author      : joki.zhu
 *   Modification: Created file
 ********************************************************************************/

#ifndef __POWERMANAGER_H__
#define __POWERMANAGER_H__

#include "app_common.h"

#ifdef __cplusplus
#if __cplusplus
extern "C"{
#endif
#endif /* __cplusplus */

int PowerInit(void);
int PowerDeinit(void);

/**
 * @brief 电源上锁
 *
 * @param[in] name 锁名称
 * 
 * @return |0|成功| |非0|失败|
 *
 * @attention 设置电源上锁后,只有释放锁后,主控才能正常下电休眠
 */
int PowerSetWakeLock(char *name);

/**
 * @brief 电源下锁
 *
 * @param[in] name 锁名称
 * 
 * @return |0|成功| |非0|失败|
 *
 * @attention 设置电源上锁后,只有释放锁后,主控才能正常下电休眠
 */
int PowerSetWakeUnLock(char *name);

/**
 * @brief 设置主控电源维活开关及维活时间
 *
 * @param[in] bEnable 电源维活使能
 * @param[in] sleepTime 电源维活时间
 * 
 * @return |0|成功| |非0|失败|
 *
 * @attention 无
 */
int PowerSetSocSleepTime(AV_BOOL bEnable, AV_INT sleepTime);

/**
 * @brief 设置主控关机休眠
 *
 * @param 无
 * 
 * @return |0|成功| |非0|失败|
 *
 * @attention 无
 */
int PowerSetSocPowerOff(void);

int PowerCheckIsLocked(void);
int PowerCheckIsSleeping(void);

#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */


#endif /* __POWERMANAGER_H__ */
